Improving Runtime Overheads for detectEr

نویسندگان

  • Ian Cassar
  • Adrian Francalanza
  • Simon Said
چکیده

Runtime Verification (RV) [11] is a lightweight verification technique mitigating the scalability issues associated with exhaustive verification techniques such as model checking. Low overheads are an important requirement for the viability of any RV framework, where the additional computation introduced by the monitors should ideally be kept to a minimum. detectEr[3, 7] is an RV tool for analysing the correctness of concurrent Erlang programs — the analysis of concurrent programs is notoriously hard and often leads to state explosion problems. From a safety correctness property (defined through a formal logic), detectEr generates a system of monitors that execute concurrently with the system under scrutiny, analysing its execution trace, and raising an alert as soon as a violation to the resp. correctness property is detected. In [7], it is shown that the monitors generated by the tool are indeed correct (e.g., they only raise an alert when the system violates the resp. property) whereas in [3] the authors study the relationship between synchronous and asynchronous instrumentation in this setting, establishing (amongst other things) that asynchronous monitoring consistently yields the lowest level of overheads. In this paper we study optimisation techniques for further lowering the overheads of the tool’s asynchronous monitors.1 The monitor synthesis defined in [7] uses concurrent monitors to parallelise the runtime analysis as much as possible and exploit better the underlying hardware architecture (which nowadays typically includes multiple computing cores). However, in order to simplify the correctness proofs, this synthesis is kept as regular as possible: the monitor-generation strategy is the same for every logical construct and does not take into consideration the syntactic context of where that logical construct appears in the correctness property. Moreover, the communication organisation of the generated concurrent monitors is also kept static throughout the execution of the program, even though certain monitor subsystems become redundant during the runtime analysis. In this work we address these two potential sources of inefficiency by defining fine-tuned organisations of concurrent monitors specifically tailored to different forms of logical formulas; in addition, these monitors are also able to perform a degree of reconfiguration during the runtime analysis. We incorporate the new strategies into the existing tool and show that the generated monitors produce lower overheads than the existing monitor translations. The rest of the paper is structured as follows. § 2 introduces the tool whereas § 3 identifies inefficiencies and proposes solutions. § 4 discusses performance improvements and § 5 concludes.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Measuring and Improving the Runtime Behaviour of Aspectj Programs

AspectJ is a popular aspect-oriented extension to Java, providing powerful new features for the modularizing of crosscutting concerns, promising improved code quality. The runtime cost of these features, however, is currently not well understood, and is a concern limiting even more wide-spread adoption of the language. The crosscutting nature of AspectJ complicates the measurement of these cost...

متن کامل

Improving the RX Anomaly Detection Algorithm for Hyperspectral Images using FFT

Anomaly Detection (AD) has recently become an important application of target detection in hyperspectral images. The Reed-Xialoi (RX) is the most widely used AD algorithm that suffers from “small sample size” problem. The best solution for this problem is to use Dimensionality Reduction (DR) techniques as a pre-processing step for RX detector. Using this method not only improves the detection p...

متن کامل

polyLarva: Runtime Verification with Configurable Resource-Aware Monitoring Boundaries

Runtime verification techniques are increasingly being applied in industry as a lightweight formal approach to achieve added assurance of correctness at runtime. A key issue determining the adoption of these techniques is the overheads introduced by the runtime checks, affecting the performances of the monitored systems. Despite advancements in the development of optimisation techniques lowerin...

متن کامل

polyLʀ: Runtime Verification with Configurable Resource-Aware Monitoring Boundaries

Runtime verification techniques are increasingly being applied in industry as a lightweight formal approach to achieve added assurance of correctness at runtime. A key issue determining the adoption of these techniques is the overheads introduced by the runtime checks, affecting the performances of the monitored systems. Despite advancements in the development of optimisation techniques lowerin...

متن کامل

FIFO with Offsets: High Schedulability with Low Overheads

The OS scheduler’s memory and runtime overheads form crucial design constraints for embedded systems implemented on low-cost hardware platforms. Table-driven scheduling can provide a high level of schedulability; however, it also consumes significant amounts of memory. By contrast, effective non-preemptive scheduling policies, such as the non-workconserving Critical-Window EDF (CW-EDF), have lo...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2015